題目:
(6 級) WeIrD StRiNg CaSe
請寫出一個命名為 weirdcase 的 function,接受參數 string
並且回傳偶數 index
字母皆為大寫,奇數 index
字母皆為小寫的 string
。
傳入的參數 string
只會包含英文字母和空白字元 (' ')。
空白字元只會出現在有好幾個單字的 string
中,單字之間只會被單一個空白字元 (' ')分開。
思考方式:
string
依照單字拆開成陣列index
為偶數則轉成大寫,反之則轉成小寫Ruby 解法:
def weirdcase string
# 先把傳入的 string 拆成陣列再用 map 一個個拿出來做運算
string.split.map {|str|
# 裡面的每個單字也各自拆開,並且同時需要 index 作為判斷
str.split("").map.with_index { |char, index|
# 若 index 為偶數便將該字母轉成大寫,反之轉成小寫
index.even? ? char.upcase : char.downcase
# 把每個單字的陣列轉回字串
}.join
# 再把 string 的陣列轉回字串,並在每個單字間加入空白字元
}.join(" ")
end
JavaScript 解法:
function toWeirdCase(string){
// 先把傳入的 string 拆成陣列再用 map 一個個拿出來做運算
return string.split(" ").map(str => {
// 裡面的每個單字也各自拆開,並且同時需要 index 作為判斷
return str.split("").map((char, index) => {
// 若 index 為偶數便將該字母轉成大寫,反之轉成小寫
return index % 2 === 0 ? char.toUpperCase() : char.toLowerCase()
// 把每個單字的陣列轉回字串
}).join("");
// 再把 string 的陣列轉回字串,並在每個單字間加入空白字元
}).join(" ");
}